//泛型通配符,表示一个引用,可以指向不同的泛型参数对象
public class Test6<T> {
    public static void main(String[] args) {
//        Test6<Integer> t = new Test6<>();
        //这个就会报错,泛型参数不匹配
//        t = new Test6<String>();

        //这个情况,t不挑食,无论泛型参数是啥都可以通过t来指向
        //此处的 ? 为通配符
//        Test6<?> t = new Test6<Integer>();
//        t = new Test6<String>();

        //指定了通配符的上界
        //此时的t可以指向泛型参数为Number及其子类的情况
        Test6<? extends Number> t = new Test6<Integer>();
        t = new Test6<Double>();

//        t = new Test6<>(String);
        //会报错,因为String不是Number的子类
    }
}
